package com.wing.cabinet.model.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wing.cabinet.model.entity.StoresRequisition;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 领新申请表Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class StoresRequisitionForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * day
     */
    private Integer day;

    /**
     * no
     */
    private Integer no;

    /**
     * 企业编号
     */
    private String enterpriseCode;

    /**
     * 领新申请编码
     */
    private String code;

    /**
     * 刀柜id
     */
    private Long cabinetId;

    /**
     * 工序id
     */
    private Long processId;

    /**
     * 工单id
     */
    private Long workOrderId;

    /**
     * 领取人id
     */
    private Long userId;

    /**
     * 状态
     */
    private StoresRequisition.Status status;

    /**
     * 审核状态
     */
    private StoresRequisition.CheckStatus checkStatus;
    /**
     * 审核人
     */
    private String auditPerson;
    /**
     * 指令密码
     */
    private Integer lnstructionCode;
    /**
     * 车间id
     */
    private Long workshopId;

    /**
     * 物料明细集合
     */
    private List<StoresRequisitionProductForm> productDetail = new ArrayList<>();
    /**
     * 柜子编号
     */
    private String cabinetCode;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss" )
    private LocalDateTime auditTime;
    /**
     * 审核描述
     */
    private String auditRemark;

    private Long storesRequisitionId;

    /**
     * 工单方式
     */
    private StoresRequisition.WorkOrderWay workOrderWay;

    private Long simpleWorkOrderId;

    public interface Add{}

    public interface Update{}

    private String uuid;
    private String uuidReject;

    /**
     * 对外api接口签名
     */
    private String sign;

    /**
     * 登录用户ID
     */
    private Long loginUserId;

}
